1. Field of the Invention
The present invention relates to a file system, and more specifically, it relates to a file system handling reading/writing of multimedia data such as pictures, sounds and animation requiring real-time properties.
2. Description of the Background Art
A file system employed in a conventional computer has mainly handled text data. According to xe2x80x9cDesign of UNIX Kernelxe2x80x9d (written by Maurice J. Bach/translated by Fumi Sakamoto, Yoshikatsu Tada and Jun Murai; Kyoritsu Shuppan Kabushiki Kaisha), for example, a file is opened with an open system call for reading or writing the content of the file with a system call such as read or write in case of reading or writing data from or in the file in the UNIX file system.
Such file systems include video servers handling digitized video data, for example. Such video servers include that having a structure of connecting a plurality of storage units storing video data with each other by an exchange unit, as described in Japanese Patent Laying-Open gazette No. 07-107425 titled xe2x80x9cVideo serverxe2x80x9d. A video regeneration procedure in such a video server is described in ISO/IEC Standard 13818-6 (Committee Draft). According to this Committee Draft, the video server completes preparation for continuous regeneration of pictures when a user transmits xe2x80x9cDirectory Openxe2x80x9d to the video server, while the video server starts transmission of video data to the user when the user transmits xe2x80x9cDSM Stream Playxe2x80x9d or xe2x80x9cDSM Pause Resumexe2x80x9d. In order to stop supply of the video data, the user transmits xe2x80x9cDSM Stream Pausexe2x80x9d to the video server.
In the conventional file system such as UNIX, however, the waiting time for reading is increased on the user side when a number of accesses are simultaneously made by users. The waiting time for a user issuing a read command for completely receiving data is unpredictable due to influence exerted by the situation of accesses from other users. Particularly in the file system such as the video server managing data such as pictures and sounds requiring temporal continuity so that each user reads a part of the data every constant time for regenerating the data in his terminal, it is necessary to reliably acquire the data within the constant time, while the conventional file system cannot cope with this. In relation to the data such as video data requiring temporal continuity, therefore, the user must previously acquire long data for regenerating pictures after acquiring all data. In this case, the user must hold a mass storage unit which can store long data, and a long waiting time is required for starting regeneration of pictures.
Therefore, an object of the present invention is to provide a file system which can provide data to a request from a user in a quick response time, and support users requiring various regeneration speeds.
The present invention has the following characteristics to attain the above object.
The first aspect is a file system for reading or writing data from or in a storage unit for storing data in response to a request from an exterior, which comprises:
a resource management part for managing the maximum value of read or write handling capacity and a used quantity of the handling capacity, and
the resource management part is adapted:
to receive a get resource message previously requiring assurance of a necessary band in case of reading or writing the data;
to determine whether or not the band required by the get resource message can be ensured on a basis of the maximum value and the used quantity of the handling capacity when the get resource message is received; and
to update and store the used quantity if the required band can be ensured as a result of the determination.
According to the first aspect, as hereinabove described, the band in the file system is ensured when the get resource message is received, whereby it is possible to guarantee delay quality as to reading or writing of files. Further, it is possible to efficiently utilize resources in the file system without ensuring a useless band, by implementing reading or writing of a plurality of files through the ensured band.
The second aspect is characterized in that, in the first aspect,
information indicating a necessary band width is given to the get resource message as a parameter.
The third aspect is characterized in that, in the second aspect,
the information, which is the parameter of the get resource message, indicating the necessary band width represents an interval for reading/writing a data block having a fixed length from/in the storage unit.
The fourth aspect is characterized in that, in the first aspect,
the band width which is ensured in accordance with the request by the get resource message is previously stored in the resource management part.
The fifth aspect is characterized in that, in the fourth aspect,
information for identifying whether the get resource message is for reading or writing is given to the get resource message, and
the resource management part stores two types of band quantities for reading and writing as band quantities which are ensured in accordance with the request by the get resource message.
The sixth aspect is characterized in that, in the first aspect,
a first delay time from a request for reading data up to start of transmission of the data is given to the get resource message as a parameter, and
the resource management is adapted:
to previously store a minimum value of a delay time which is warrantable by the file system;
to compare the first delay time with the minimum value when the get resource message is received; and
to ensure no band if the first delay time is shorter than the minimum value as a result of the comparison.
The seventh aspect is characterized in that,
the sixth aspect further comprises a declared value management part for checking a parameter which is given to a message arriving from the exterior, and
the declared value management part is adapted:
to receive a read block message which is provided with a second delay time up to start of transmission of read data as the parameter in case of performing data reading;
to compare the second delay time with the first delay time when the read block message is received; and
to decide transmission of a violation notice to a transmitter of the read block message when the second delay time is determined to be shorter as a result of the comparison.
The eighth aspect is characterized in that,
the first aspect further comprises a declared value management part for checking a parameter which is given to a message arriving from the exterior, and
the declared value management part is adapted:
to store a minimum value of a delay time which is warrantable by the file system;
to receive a read block message which is provided with a second delay time up to start of transmission of read data as the parameter in case of performing data reading;
to compare the second delay time with the minimum time when the read block message is received; and
to decide transmission of a violation notice to a transmitter of the read block message when the second delay time is determined to be shorter as a result of the comparison.
The ninth aspect is characterized in that, in the first aspect,
the get resource message is provided with a delay time up to start of transmission of data from a read request as a parameter, and
the resource management part is adapted:
to calculate a band width which is necessary for satisfying the delay time when the get resource message is received; and
to compare the band width which is obtained as a result of the calculation with the band width to be ensured in accordance with the request by the get resource message, for determining whether or not the larger band width can be ensured.
According to the ninth aspect, as hereinabove described, a determination is made as to whether or not the larger band can be ensured in the band satisfying the delay time declared by the get resource message and the band to be ensured in accordance with the request by the get resource message to allocate the band, whereby a plurality of delay qualities can be supported.
The tenth aspect is characterized in that,
the first aspect further comprises a declared value management part for checking a parameter which is given to a get resource message arriving from the exterior, and
the declared value management part is adapted in data writing:
to monitor a speed of data arrival;
to compare the speed of data arrival obtained as a result of the monitoring with a band width which is ensured when the get resource message is accepted; and
not to perform data writing but to make a violation notice to a transmitter of the get resource message when the speed of data arrival is determined to be larger as a result of the comparison.
The eleventh aspect is characterized in that,
the first aspect further comprises a declared value management part for checking a parameter which is given to a message arriving from the exterior, and
the declared value management part is adapted:
to receive a read block message which provided with a read data quantity per unit time as the parameter in data reading;
to calculate a data read speed from the data quantity per unit time when the read block message is received;
to compare the data read speed obtained by the calculation and the band width ensured when the get resource message is accepted; and
to stop the data reading and decide transmission of a violation notice to a transmitter of the read block message if the data read speed is larger as a result of the comparison.
The twelfth aspect is characterized in that, in the first aspect,
each of the maximum value and the used quantity of the handling capacity is a read data quantity per unit time.
The thirteenth aspect is characterized in that, in the twelfth aspect,
a flag distinguishing reading and writing from each other and information indicating the necessary band width are given to the get resource message as parameters, and
the resource management part refers to the flag when the get resource message is received to regard a band width which is decided by the parameters given to the get resource message as the band width to be ensured in case of reading, while regarding a value obtained by multiplying the band width which is decided by the parameters given to the get resource message by a constant value as the band width to be ensured in case of writing.
The fourteenth aspect is characterized in that, in the first aspect,
each of the maximum value and the used quantity of the handling capacity is a write data quantity per unit time.
The fifteenth aspect is characterized in that, in the fourteenth aspect,
a flag distinguishing reading and writing from each other and information indicating the necessary band width are given to the get resource message as parameters, and
the resource management part refers to the flag when the get resource message is received to regard a band width which is decided by the parameters given to the get resource message as the band width to be ensured in case of writing, while regarding a value obtained by multiplying the band width which is decided by the parameters given to the get resource message by a constant value as the band width to be ensured in case of reading.
According to the thirteenth or fifteenth aspect, as hereinabove described, a band obtained by multiplying the required band by a constant value is regarded as the band to be ensured in data writing or data reading, whereby it is not necessary to previously divide the handling capacity of the file system into handling capacities for writing and reading, the ratios can be readily changed in response to requests from users, and resources can be efficiently used.
The sixteenth aspect is a file system comprising a plurality of block storage units storing data, a single or a plurality of I/O units controlling data writing or data reading in response to a request from a user, and an exchange unit connecting each block storage unit with each I/O unit, in which each I/O unit divides the magnitude of the data required by the user into blocks having fixed lengths and transmits a block read request to the block storage unit every block for reading the blocks, and
each I/O unit is adapted:
to set an MS arrival slot dividing time every constant time so that a constant number of block read requests can be registered in the MS arrival slot;
to allocate the MS arrival slot to the block read request in case of transmitting the block read request;
to calculate a time for allowing input from each block storage unit to the exchange unit on the basis of a time corresponding to the allocated MS arrival slot; and
to give a difference time between the calculated time and a current time to the block read request as a delay limit value and transmit the same to the block storage unit,
whereby input of the block which is read from the block storage unit in response to the block read request in the exchange unit is allowed after a time of the delay limit value from arrival of the block read request at the block storage unit.
According to the sixteenth aspect, as hereinabove described, the MS arrival slot is allocated to the block read request, whereby the number of blocks inputted from the block storage units in the exchange unit can be temporally smoothed. Consequently, it is possible to avoid the blocks read from the plurality of block storage units and inputted in the exchange unit from colliding with each other on the input side into the I/O unit and being discarded in the interior of the exchange unit. Further, fluctuation caused by traffic times of the blocks can be reduced, whereby it is possible to efficiently utilize the exchange unit.
The seventeenth aspect is characterized in that,
the sixteenth aspect comprises a plurality of server units which are provided with the I/O units and the block storage units in the interiors thereof.
The eighteenth aspect is characterized in that, in the sixteenth aspect,
each I/O unit allocates no MS arrival slot to a block read request which is not inputted in the exchange unit among the block read requests.
The nineteenth aspect is characterized in that,
the sixteenth aspect further comprises a resource management part managing a maximum value of read or write handling capacity and a used quantity of the handling capacity,
the resource management part is adapted:
to receive a get resource message previously requiring assurance of a necessary band in case of performing data reading or data writing;
to determine whether or not the band which is required by the get source message can be ensured on the basis of the maximum value and the used quantity of the handling capacity when the get resource message is received; and
to update and store the used quantity if the required band can be ensured as a result of the determination, and
each I/O unit is adapted:
to set an issuance interval for the block read requests which are necessary for reading data of the ensured band at T_min for deciding an expected slot of the MS arrival slot at the interval T_min when a band necessary for reading a file is ensured;
to reserve the expected slot if a free space is present in the decided expected slot;
to successively refer to an MS arrival slot of a next time for reserving an MS arrival slot having a free space if the decided expected slot has no free space; and
to allocate the block read request to the reserved MS arrival slot in case of data reading.
According to the nineteenth aspect, as hereinabove described, the band in the file system is ensured when the get resource message is received, whereby delay quality can be guaranteed as to reading or writing of files. Reading or writing of a plurality of files is implemented through the ensured band, whereby resources in the file system can be effectively utilized with no necessity for ensuring useless bands.
The twentieth aspect is characterized in that, in the nineteenth aspect,
each I/O unit reserves the MS arrival slots in order from the MS arrival slot having a larger ensured band to the MS arrival slot having a smaller ensured band.
According to the twentieth aspect, as hereinabove described, MS arrival slot reservation is made in the order from that having a larger ensured band to that having a smaller one, whereby it is possible to utilize the slot by 100% by making the maximum registration number of each slot constant while guaranteeing delay qualities of all bands. At this time, time fluctuation of a request transmission number is eliminated and it is possible to most efficiently utilize the exchange unit.
The twenty-first aspect is characterized in that, in the nineteenth aspect,
each I/O unit makes the MS arrival slot reservation in the order from the MS arrival slot whose next expected slot arrives with earlier timing.
The twenty-second aspect is characterized in that, in the nineteenth aspect,
each I/O unit regards a reserved MS arrival slot as an unallocated MS arrival slot as a result of the allocation of the MS arrival slot if an MS arrival slot which is reserved at a time before the time corresponding to the allocated MS arrival slot for the same user is present, and allocates the unallocated MS arrival slot to a data read request from a user acquiring no resource.
The twenty-third aspect is characterized in that, in the nineteenth aspect,
each I/O unit performs the reservation of MS arrival slots with respect to all users whose get resource messages are accepted, for allocating unreserved MS arrival slots to data read requests from users acquiring no resources.
According to the twenty-second or twenty-third aspect, as hereinabove described, unused MS arrival slots are allocated to reading of data from users acquiring no resources, whereby the use efficiency of the file system can be further improved.
The twenty-fourth aspect is characterized in that,
the first aspect further comprises:
a single or a plurality of block storage units storing data;
a single or a plurality of I/O units controlling data writing or data reading in response to a request from a user; and
an exchange unit for connecting each block storage unit with each I/O unit, and
each I/O unit is adapted:
to divide the magnitude of data which is required to be written by the user into blocks having fixed lengths and transmit a block read request to each block storage unit for every block thereby reading the blocks; and
to set a write slot which is divided every constant time in correspondence to each block storage unit for allocating the write slot to a block write request in case of transmitting the block write request.
According to the twenty-fourth aspect, as hereinabove described, the MS arrival slot is allocated to the block read request, whereby the number of blocks inputted from the block storage units in the exchange unit can be temporally smoothed. Consequently, it is possible to avoid the blocks read from the plurality of block storage units and inputted in the exchange unit from colliding with each other on the input side to the I/O unit and being discarded in the interior of the exchange unit. Further, fluctuation caused by traffic times of the blocks can be reduced, whereby it is possible to efficiently utilize the exchange unit.
The twenty-fifth aspect is a method of dispersing/arranging file data in respective storage units in a file system inputting/outputting the file data in/from a plurality of storage units, and characterized in that:
ratios for arranging the file data are decided in proportion to bands which are provided in respective storage units for dispersing and storing the file data in the respective storage units in accordance with the decided ratios.
According to the twenty-fifth aspect, as hereinabove described, the ratios for arranging the file data are decided in proportion to the bands provided in the respective storage units so that the file data are dispersed and stored in the respective storage units in accordance with the decided ratios, whereby it is possible to prevent such a situation that the ability of a storage unit having high performance (data read/write speed) cannot be sufficiently brought out due to a bottleneck of a storage unit having low performance.
The twenty-sixth aspect is a method of dispersing/arranging file data in respective storage units in a file system inputting/outputting the file data in/from a plurality of storage units, which is characterized in that:
ratios for arranging the file data, which are decided in proportion to storage capacities, are provided in the respective storage units for dispersing and storing the file data in the respective storage units in accordance with the decided ratios.
According to the twenty-sixth aspect, as hereinabove described, the ratios for arranging the file data are decided in proportion to the storage capacities provided in the respective storage units so that the file data are dispersed and stored in the respective storage units in accordance with the decided ratios, whereby it is possible to prevent such a situation that the ability of a storage unit having high performance (data read/write speed) cannot be sufficiently brought out due to a bottleneck of a storage unit having low performance.
The twenty-seventh aspect is a method of dispersing/arranging file data in respective storage units in a file system inputting/outputting the file data in/from a plurality of storage units, which is characterized in that:
ratios for arranging the file data, which are decided in proportion to bands and storage capacities, are provided in the respective storage units for dispersing and storing the file data in the respective storage units in accordance with the decided ratios.
According to the twenty-seventh aspect, as hereinabove described, the ratios for arranging the file data are decided in proportion to the bands and the storage capacities provided in the respective storage units so that the file data are dispersed and stored in the respective storage units in accordance with the decided ratios, whereby it is possible to prevent such a situation that the ability of a storage unit having high performance (data read/write speed) cannot be sufficiently brought out due to a bottleneck of a storage unit having low performance.
The twenty-eighth aspect is an input/output band management unit for managing input/output bands of file data with respect to respective storage units in a file system inputting/outputting the file data in/from a plurality of storage units, which comprises:
a band management part for managing bands provided in the respective storage units;
a capacity management part for managing storage capacities provided in the respective storage units;
a distribution ratio decision part for deciding ratios for distributing the file data in the respective storage units in accordance with a previously defined algorithm;
a band calculation part for deciding a band in case of integrating all storage units on the basis of management information held by the band management part and the ratios of distribution decided in the distribution ratio decision part;
a capacity calculation part for deciding a storage capacity in case of integrating all storage units on the basis of management information held by the capacity management part and the ratios of distribution decided in the distribution ratio decision part;
a total band control part for controlling the input/output bands of all storage units on the basis of the value calculated in the band calculation part; and
a total capacity control part for controlling the storage capacities of all storage units on the basis of the value calculated in the capacity calculation part.
According to the twenty-eighth aspect, as hereinabove described, the plurality of storage units are integrated for managing the input/output band and the storage capacity, whereby management of the input/output band is simplified in case of combining storage units having different bands and different storage capacities with each other and using the same.
The twenty-ninth aspect is characterized in that, in the twenty-eighth aspect,
the distribution ratio decision part decides ratios for arranging the file data in proportion to the bands which are provided in the respective storage units.
The thirtieth aspect is characterized in that, in the twenty-eighth aspect,
the distribution ratio decision part decides ratios for arranging the file data in proportion to the storage capacities which are provided in the respective storage units.
The thirty-first aspect is characterized in that, in the twenty-eighth aspect,
the distribution ratio decision part decides ratios for arranging the file data in proportion to the bands and the storage capacities which are provided in the respective storage units.
According to the twenty-ninth to thirty-first aspects, as hereinabove described, the ratios for distributing the file data are decided in proportion to the bands and/or the storage capacities provided in the respective storage units, whereby the use efficiency of the overall storage units can be optimized.
The thirty-second aspect is characterized in that, in the twenty-ninth aspect,
the band calculation part regards a minimum value as the band in case of integrating all storage units among values obtained by multiplying the bands which are provided in the respective storage units by inverse numbers of the distribution ratios decided in the distribution ratio decision part.
The thirty-third aspect is characterized in that, in the twenty-eighth aspect,
the capacity calculation part regards a minimum value as the storage capacity in case of integrating all storage units among values which are obtained by multiplying the storage capacities provided in the respective storage units by inverse numbers of the distribution ratios decided in the distribution ratio decision part.
The thirty-fourth aspect is a file system for inputting/outputting file data in/from a plurality of storage units, which comprises:
a file attribute management part for defining as file attributes and managing band characteristics; and
a band acquisition part for acquiring necessary bands in accordance with the file band characteristics managed in the file attribute management part before inputting/outputting the file data.
According to the thirty-fourth aspect, as hereinabove described, the band characteristics are newly defined as the file attributes and managed so that input/output of the file data is controlled on the basis of the managed band characteristics, whereby access control responsive to the band characteristics of the respective files can be performed.
The thirty-fifth aspect is characterized in that,
the thirty-fourth aspect employs layout profile information describing distribution ratios of the file data in the respective storage units as the band characteristics of the file attributes.
The thirty-sixth aspect is a file system for inputting/outputting file data in/from a plurality of storage units, which comprises:
a file open processing part for performing file open processing;
a band acquisition part for performing acquisition of a band employed for inputting/outputting the file data; and
a data input/output part for dividing the band acquired in the band acquisition part and individually allocating the same to a plurality of files which are opened by the file open processing part thereby simultaneously inputting/outputting data of a plurality of files.
The thirty-seventh aspect is a file system for inputting/outputting file data in/from a plurality of storage units, which comprises:
a file open processing part for performing file open processing;
a band acquisition part for performing acquisition of a band employed for inputting/outputting the file data; and
a data input/output part for integratedly allocating a single band acquired in the band acquisition part to a plurality of files which are opened by the file open processing part, thereby alternately inputting/outputting data of a plurality of files through the same band.
According to the thirty-sixth or thirty-seventh aspect, as hereinabove described, the degree of freedom of bands used for data input/output can be improved by independently and arbitrarily combining file open and band acquisition.
The thirty-eighth aspect is a scheduling unit for scheduling service requests so that a server cyclically provides services to a plurality of clients, which comprises:
first queue for queuing service requests from the plurality of clients;
a registration part for registering cycles for generating execution rights for the plurality of clients;
an execution right generation part for generating the execution rights for executing the service requests in relation to the cycles registered in the registration part; and
an execution instruction part for instructing the server to execute service requests from clients corresponding to the execution rights generated by the execution right generation part among the service requests queued in the first queue part.
As hereinabove described, the first queue part queues the service requests from the respective clients. The registration part registers the cycles for generating execution rights for the respective clients. The execution right generation part generates execution rights in relation to the cycles registered in the registration part. The execution instruction part instructs the server to execute the service requests from the clients corresponding to the execution rights generated by the execution right generation part among the service requests queued in the first queue.
Thus, the service requests from the respective clients are queued while the cycles for generating execution rights for the respective clients are registered so that execution rights are generated on the basis of the cycles. The server is instructed to execute those from the clients corresponding to the generated execution rights among the queued service requests. Thus, the time from transmission to execution of a service request from a certain client is not influenced by situations of transmission of service requests from other clients, whereby it is possible to prevent the time up to execution of the transmitted service request from being indefinite.
The thirty-ninth aspect is characterized in that, in the thirty-eighth aspect,
the execution right generation part is started in a prescribed cycle for determining whether or not the execution rights are generated for every client on the basis of the cycles for generating the execution rights which are registered in the registration part and the cycle for starting the same at the time of starting while collectively generating the execution rights for the clients who determined to generate the execution rights.
According to the thirty-ninth aspect, as hereinabove described, the execution right generation part is started in the prescribed cycle and performs the operation of generating execution rights. At this time, the execution right generation part determines whether or not execution rights are generated for the respective clients on the basis of the cycles for generating execution rights and the cycle for starting the same, for collectively generating the execution rights for the clients determined to be generated. Thus, the processing operation of the execution right generation part can be reduced as compared with an operation of generating execution rights in the cycles for generating execution rights registered in the registration part.
The fortieth aspect is characterized in that, in the thirty-ninth aspect,
the execution right generation part calculates a time from a current started time up to a time for generating the next execution right on the basis of the cycles for generating the execution rights which are registered in the registration part and the cycle for starting the same and determines whether or not the execution rights are generated by comparing the time obtained by the calculation with the cycle for starting the same.
Thus, it is possible to determine whether or not execution rights for the respective clients are generated.
The forty-first aspect is characterized in that, in the fortieth aspect,
the execution right generation part generates an execution right for a client having a time Tofs between a current started time to a time for generating the next execution right which is less than a cycle Tslt for starting the same (Tofs less than Tslt) and adds a cycle Treq for generating the execution right registered in the registration part to the Tofs of the client, for calculating a new Tofs for next starting by an expression Tofs=Tofsxe2x88x92Tslt with respect to the Tofs if the Tofs obtained by the addition is greater than or equal to Tslt (Tofsxe2x89xa7Tslt).
According to the forty-first aspect, as hereinabove described, the execution right generation part generates the execution right for the client having the Tofs which is less than the Tslt. Further, the part adds the Treq to this Tofs, for calculating the new Tofs for next starting by the expression Tofs=Tofsxe2x88x92Tslt with respect to the Tofs if the Tofs obtained by the addition is greater than or equal to Tslt (Tofsxe2x89xa7Tslt). Thus, it is possible to generate the execution right by determining the client for whom the execution right must be generated.
The forty-second aspect is characterized in that, in the forty-first aspect,
the execution right generation part repeats an operation of further generating an execution right, adding the Treq to the Tofs and comparing the result with the Tslt if the Tofs obtained by the addition is less than Tslt (Tofs less than Tslt), and calculates a new Tofs for next starting by an expression Tofs=Tofsxe2x88x92Tslt with respect to the Tofs when the Tofs obtained by the addition is greater than or equal to the Tslt (Tofsxe2x89xa7Tslt).
According to the forty-second aspect, as hereinabove described, the execution right generation part repeats the operation of further generating the execution right, adding the Treq to the Tofs and comparing the result with the Tslt if the Tofs obtained by the addition is less than Tslt (Tofs less than Tslt). Further, the part calculates the new Tofs for next starting by the expression Tofs=Tofsxe2x88x92Tslt with respect to the Tofs when the Tofs obtained by the addition is greater than or equal to the Tslt (Tofsxe2x89xa7Tslt). Thus, it is possible to generate a necessary number of execution rights by farther determining a plurality of clients for whom the execution rights must be generated.
The forty-third aspect is characterized in that, in the forty-first aspect,
the execution right generation part generates no execution right as to a client having a time Tofs between a current started time and a time for generating the next execution right which is greater than or equal to the Tslt (Tofsxe2x89xa7Tslt) or a service request which is not queued in the first queue, and calculates a new Tofs for next starting through an expression Tofs=Tofsxe2x88x92Tslt with respect to the Tofs.
According to the forty-third aspect, as hereinabove described, the execution right generation part generates no execution right as to the client having the Tofs which is greater than or equal to the Tslt (Tofsxe2x89xa7Tslt) or a service request which is not queued in the first queue. Further, the part calculates the new Tofs for next starting through the expression Tofs=Tofsxe2x88x92Tslt with respect to the Tofs. Thus, no execution right is generated for the client whose service request is not queued, so that no service is provided to the client transmitting no service request.
The forty-fourth aspect is characterized in that, in the forty-third aspect,
the execution right generation part zeroes the Tofs for next starting if the new Tofs obtained by the calculation is less than zero (Tofs less than 0).
Thus, it is possible to prevent such a phenomenon that the Tofs of the client whose service request is not queued is reduced to a small value due to repetitive subtraction of the Tslt and a number of execution rights for this client are generated when the service request is queued.
The forty-fifth aspect is characterized in that, in the thirty-ninth aspect,
the execution instruction part is started in a prescribed cycle for selecting an execution right for a client having a shorter time between a current started time to a time for generating the next execution right.
Thus, it is possible to further reduce the number of times of delay occurrence by selecting the execution right of the client having a shorter time between the current started time and the time for generating the next execution right.
The forty-sixth aspect is characterized in that, in the forty-fifth aspect,
the execution right generation part calculates an evaluation index indicating precedence as a function of the cycles for generating the execution rights which are registered in the registration part and providing the same to the generated execution rights, and
the execution instruction part selects an execution right to be preferentially processed among those generated by the execution right generation part.
According to the forty-sixth aspect, as hereinabove described, the execution right generation part provides the evaluation index indicating the precedence calculated as the function of the cycles for generating the execution rights, and the execution instruction part selects the execution right to be preferentially processed on the basis of the provided evaluation index. Thus, when the execution rights compete with each other, that to be preferentially processed can be selected in relation to the cycles for generating the execution rights.
The forty-seventh aspect is characterized in that, in the forty-sixth aspect,
the execution right generation part calculates the evaluation index Nsft by a function Nsft=f(Treq/Tslt), where f(x) represents the minimum integer exceeding x, with respect to the cycles Treq for generating execution rights which are registered in the registration part and the cycle Tslt for starting the same, and
the execution instruction part selects an execution right having a smaller evaluation index Nsft provided thereto.
Thus, when execution rights compete with each other, that having a shorter cycle for generating the execution right can be selected.
The forty-eighth aspect is characterized in that, in the forty-seventh aspect,
the execution right generation part is started in a cycle which is shorter than the longest one of the cycles registered in the registration part.
Thus, execution rights for all clients are not provided with the same evaluation indices.
The forty-ninth aspect is characterized in that, in the forty-seventh aspect,
the execution right generation part is started in a cycle which is further shorter than the shortest one of the cycles registered in the registration part.
Thus, more detailed evaluation indices are provided to the execution rights for the respective clients.
The fiftieth aspect is characterized in that, in the forty-sixth aspect,
the execution instruction part includes a second queue for queuing the execution rights which are generated by the execution right generation part for every evaluation index, provided by the execution right generation part, in order of generation, for selecting that execution right having a smaller provided evaluation index and being precedently generated among the execution rights which are queued in the queue.
Thus, the execution instruction part can readily select that execution right to be preferentially processed among the generated execution rights, whereby the processing operation of the execution instruction part can be reduced.
The fifty-first aspect is characterized in that, in the forty-sixth aspect,
the execution instruction part recognizes a maximum number of service requests, execution of which is instructed in starting, stops the instructions of execution when the execution of the service requests is instructed by a number which is equal to the maximum number, and changes the evaluation indices of remaining execution rights to those having higher precedence.
According to the fifty-first aspect, as hereinabove described, the execution instruction part stops the execution instruction when the maximum number of execution instructions are performed, while changing the evaluation indices for the remaining execution rights to those having higher precedence. Thus, it is possible to make execution instruction not performed beyond the maximum number, while it is possible to prevent the remaining execution rights from being not selected for a long time.
The fifty-second aspect is characterized in that, in the fifty-first aspect,
the maximum number of the service requests, execution of which is instructed in starting, recognized by the execution instruction part is a maximum number of the service requests which are executable by the server in a time equal to the cycle for starting the same.
Thus, it is possible to make execution instruction not performed beyond the maximum number.
The fifty-third aspect is characterized in that, in the forty-seventh aspect,
the execution instruction part recognizes a maximum number of service requests, execution of which is instructed in starting, stops instruction of execution when execution of the service requests is instructed by a number which is equal to the maximum number, and decrements the evaluation indices of remaining execution rights.
According to the fifty-third aspect, as hereinabove described, the execution instruction part stops the execution instruction when the maximum number of execution instruction is performed, while decrementing the evaluation indices for the remaining execution rights. Thus, it is possible to make execution instruction not performed beyond the maximum number, while the evaluation indices of the remaining execution rights are decremented every Tslt, whereby it is possible to make the execution rights selected after Treq+Tslt from generation at the latest.
The fifty-fourth aspect is characterized in that, in the fifty-third aspect,
the maximum number of the service requests, execution of which is instructed in starting, recognized by the execution instruction part is a maximum number of the service requests which are executable by the server in a time equal to the cycle for starting the same.
Thus, it is possible to make execution instruction not performed beyond the maximum number.
The fifty-fifth aspect is characterized in that,
the fifty-first aspect further comprises a registration instruction part for instructing the registration part to register the cycles for generating execution rights on the basis of declarations from the plurality of clients.
Thus, it is possible to make the cycles for generating execution rights registered in the registration part at need.
The fifty-sixth aspect is characterized in that, in the fifty-fifth aspect,
the registration instruction part recognizes a maximum number of service requests, execution of which is instructed by the execution instruction part per unit time, for instructing the registration part to register the cycles if the same determines that an average number of the generated execution rights per unit time is not in excess of the maximum number even if further registration is made when registration of a further cycle is declared in addition to already registered cycles, while making the cycle not registered if the same determines otherwise.
According to the fifty-sixth aspect, as hereinabove described, the registration instruction part instructs the registration part to register the declared cycles only when the same determines that the average number of the generated execution rights per unit time is not in excess of the maximum number of the service requests, execution of which is instructed by the execution instruction part per unit time, even if the declared cycle is further registered in addition to the already registered cycles. Thus, it is possible to prevent the average number of the generated execution rights per unit time from exceeding the maximum number of the service requests, execution of which is instructed by the execution instruction part per unit time, in case of registering the new cycle.
The fifty-seventh aspect is a scheduling unit for scheduling service requests so that a plurality of servers cyclically provide services to a client respectively, which comprises:
a first queue for queuing service requests to the plurality of servers;
a registration part for registering cycles for generating execution rights for the plurality of servers;
an execution right generation part for generating the execution rights for executing the service requests in relation to the cycles registered in the registration part; and
an execution instruction part for instructing the servers to execute the service requests to the servers corresponding to the execution rights generated by the execution right generation part among the service requests queued in the first queue.
As hereinabove described, the first queue queues the service requests to the respective servers. The registration part registers the cycles for generating execution rights for the respective servers. The execution right generation part generates execution rights in relation to the cycles registered in the execution rights. The execution instruction part instructs the servers to execute the service requests for the servers corresponding to the execution rights generated by the execution right generation part among the service requests queued in the first queue.
Thus, the service requests for the respective servers are queued while the cycles for generating execution rights for the respective servers are registered so that the execution rights are generated on the basis of the cycles. The servers are instructed to execute those of the queued service requests for the servers corresponding to the generated execution rights. Thus, the time from transmission to execution of a service request to a certain server is not influenced by situations of transmission of service requests to other servers, whereby it is possible to prevent the time up to execution of the transmitted service request from being indefinite.
The fifty-eighth aspect is characterized in that, in the fifty-seventh aspect,
the execution right generation part is started in a prescribed cycle for determining at the time of starting whether or not the execution rights are generated for respective servers on the basis of the cycles for generating the execution rights which are registered in the registration part and the cycle for starting the same and collectively generating the execution rights for the servers for which the execution rights are determined to be generated.
According to the fifty-eighth aspect, as hereinabove described, the execution right generation part is started in the prescribed cycle, and performs the operation of generating execution rights. At this time, the execution right generation part determines whether or not the execution rights are generated for the respective servers on the basis of the cycles for generating execution rights and the cycle for starting the same, for collectively generating the execution rights for the servers determined to be generated. Thus, the processing operation of the execution right generation part can be reduced as compared with the case of generating execution rights in the cycles for generating the execution rights registered in the registration part.
The fifty-ninth aspect is characterized in that, in the fifty-eighth aspect,
the execution right generation part calculates a time from a current started time up to a time for generating the next execution right on the basis of the cycles for generating execution rights which are registered in the registration part and the cycle for starting the same and compares the time obtained by the calculation with the cycle for starting the same, thereby determining whether or not the execution rights are generated.
Thus, it is possible to determine whether or not execution rights for the respective servers are generated.
The sixtieth aspect is characterized in that, in the fifty-eight aspect,
the execution right generation part generates an execution right for a server having a time Tofs between a current started time to a time for generating the next execution right which is less than a cycle Tslt for starting the same (Tofs less than Tslt) and adds a cycle Titv for generating the execution right registered in the registration part to the Tofs of the server, for calculating a new Tofs for next starting by an expression Tofs=Tofsxe2x88x92Tslt with respect to the Tofs if the Tofs which is obtained by the addition is greater than or equal to Tslt (Tofsxe2x89xa7Tslt).
According to the sixtieth aspect, as hereinabove described, the execution right generation part generates the execution right for the server having the Tofs which is less than the Tslt (Tofs less than Tslt). Further, the part adds the Titv to the Tofs, for calculating the new Tofs for next starting by the expression Tofs=Tofsxe2x88x92Tslt with respect to the Tofs if the Tofs which is obtained by the addition is greater than or equal to Tslt (Tofsxe2x89xa7Tslt). Thus, it is possible to determine the server for which the execution right is to be generated, for making the execution right generated.
The sixty-first aspect is characterized in that, in the sixtieth aspect,
the execution right generation part repeats an operation of further generating an execution right, adding the Titv to the Tofs and comparing the result with the Tslt if the Tofs obtained by the addition is less than Tslt (Tofs less than Tslt), and calculates a new Tofs for next starting by an expression Tofs=Tofsxe2x88x92Tslt with respect to the Tofs when the Tofs obtained by the addition is greater than or equal to Tslt (Tofsxe2x89xa7Tslt).
According to the sixty-first aspect, as hereinabove described, the execution right generation part repeats the operation of further generating the execution right, adding the Titv to the Tofs and comparing the result with the Tslt if the Tofs obtained by the addition is less than Tslt (Tofs less than Tslt). Further, the part calculates the new Tofs for next starting by the expression Tofs=Tofsxe2x88x92Tslt with respect to the Tofs when the Tofs obtained by the addition is greater than or equal to Tslt (Tofsxe2x89xa7Tslt). Thus, it is possible to further determine a plurality of servers for which execution rights are to be generated, for generating a necessary number of execution rights.
The sixty-second aspect is characterized in that, in the sixtieth aspect,
the execution right generation part generates no execution right as to a server having a time Tofs between a current started time and a time for generating the next execution right which is greater than or equal to the Tslt (Tofsxe2x89xa7Tslt) or having a service request which is not queued in the first queue and calculates a new Tofs for next starting through an expression Tofs=Tofsxe2x88x92Tslt with respect to the Tofs.
According to the sixty-second aspect, as hereinabove described, the execution right generation part generates no execution right as to the server having the Tofs which is greater than or equal to the Tslt (Tofsxe2x89xa7Tslt) or the service request which is not queued in the first queue. Further, the part calculates the new Tofs for next starting through the expression Tofs =Tofsxe2x88x92Tslt with respect to the Tofs. Thus, no execution right is generated for the server whose service request is not queued, whereby it is possible to prevent the server receiving no service request from providing a service.
The sixty-third aspect is characterized in that, in the sixty-second aspect,
the execution right generation part zeroes the Tofs for next starting if the new Tofs obtained by the calculation is less than zero (Tofs less than 0).
Thus, it is possible to prevent such a phenomenon that the Tofs of the server for whom no service request is queued is reduced to a small value due to repetitive subtraction of the Tslt and a number of execution rights for this server are generated when the service request is queued.
The sixty-fourth aspect is characterized in that, in the fifty-eighth aspect,
the execution instruction part is started in a prescribed cycle for selecting an execution right of a server having a shorter time between a current started time to a time for generating the next execution right.
Thus, the number ofttimes of delay occurrence can be further reduced by selecting the execution right of the server having the shorter time between the current started time to the time for generating the next execution right.
The sixty-fifth aspect is characterized in that, in the sixty-fourth aspect,
the execution right generation part calculates an evaluation index indicating precedence as a function of the cycles for generating execution rights which are registered in the registration part and providing the same to the generated execution rights, and
the execution instruction part selects an execution right to be preferentially processed among those generated by the execution right generation part on the basis of the provided evaluation index.
According to the sixty-fifth aspect, as hereinabove described, the execution right generation part provides the evaluation index indicating the precedence calculated as the functions of the cycles for generating the execution rights, and the execution instruction part selects the execution right to be preferentially processed on the basis of the provided evaluation index. Thus, when execution rights compete with each other, that to be further preferentially processed in relation to the cycles for generating the execution rights can be selected.
The sixty-sixth aspect is characterized in that, in the sixty-fifth aspect,
the execution right generation part calculates an evaluation index Nsft by a function Nsft=f(Titv/Tslt), where f(x) represents a minimum integer exceeding x, with respect to the cycles Titv for generating execution rights which are registered in the registration part and the cycle Tslt for starting the same, and
the execution instruction part selects an execution right having a smaller evaluation index Nsft which is provided thereto.
Thus, when execution rights compete with each other, that execution right having a shorter cycle for generating the execution right can be selected.
The sixty-seventh aspect is characterized in that, in the sixty-sixth aspect,
the execution right generation part is started in a cycle which is shorter than the longest one of the cycles registered in the registration part.
Thus, execution rights for all clients are not provided with the same evaluation indices.
The sixty-eighth aspect is characterized in that, in the sixty-sixth aspect,
the execution right generation part is started in a cycle which is further shorter than the shortest one of the cycles registered in the registration part.
Thus, more detailed evaluation indices are provided to the execution rights for the respective servers.
The sixty-ninth aspect is characterized in that, in the sixty-fifth aspect,
the execution instruction part includes a second queue part for queuing the execution rights which are generated by the execution right generation part for every evaluation index provided by the execution right generation part in order of generation, for selecting that execution right having a smaller provided evaluation index and being precedently generated among the execution rights which are queued in the queue.
Thus, the execution instruction part can readily select that execution right to be preferentially processed among the generated execution rights, whereby the processing operation of the execution instruction part can be reduced.
The seventieth aspect is characterized in that, in the sixty-fifth aspect,
the execution instruction part recognizes a maximum number of service requests, execution of which is instructed in starting, stops instruction of execution when execution of the service requests is instructed by a number which is equal to the maximum number, and changes the evaluation indices of remaining execution rights to those of higher precedence.
According to the seventieth aspect, as hereinabove described, the execution instruction part stops execution instruction when the maximum number of execution instruction is performed, and changes the evaluation indices of the remaining execution rights to those of higher precedence. Thus, it is possible to make execution instruction not performed beyond the maximum number, while it is possible to prevent the remaining execution rights from being not selected for a long time.
The seventy-first aspect is characterized in that, in the seventieth aspect,
the maximum number of the service requests, execution of which is instructed in starting, recognized by the execution instruction part is a number of the service requests corresponding to a maximum quantity of information transmittable from all servers to the client in a time which is equal to the cycle for starting the same.
Thus, it is possible to make execution instruction not performed in a number exceeding the maximum information quantity transmittable from all servers to the client.
The seventy-second aspect is characterized in that, in the sixty-sixth aspect,
the execution instruction part recognizes a maximum number of the service requests, execution of which is instructed in starting, stops instruction of execution when execution of the service requests is instructed by a number which is equal to the maximum number, and decrements the evaluation indices of remaining execution rights.
According to the seventy-second aspect, as hereinabove described, the execution instruction part stops execution instruction when the maximum number of execution instruction is performed, and decrements the evaluation indices of the remaining execution rights. Thus, it is possible to make execution instruction not performed beyond the maximum number, while the evaluation indices of the remaining execution rights are decremented every Tslt, whereby it is possible to make the execution rights selected after Treq+Tslt from generation at the latest.
The seventy-third aspect is characterized in that, in the seventy-second aspect,
the maximum number of the service requests, execution of which is instructed in starting, recognized by the execution instruction part is a number of the service requests corresponding to a maximum quantity of information transmittable from all servers to the client in a time which is equal to the cycle for starting the same.
Thus, it is possible to make execution instruction not performed in a number exceeding the maximum information quantity transmittable from all servers to the client.
The seventy-fourth aspect is characterized in that,
the seventieth aspect further comprises a registration instruction part for instructing the registration part to register/update the cycles for generating execution rights on the basis of a declaration from the client.
Thus, it is possible to make the registration part register/update the cycles for generating execution rights at need.
The seventy-fifth aspect is characterized in that, in the seventy-fourth aspect,
the registration instruction part recognizes a maximum number of service requests, execution of which is instructed by the execution instruction part to all servers per unit time, for instructing the registration part to register the cycles if the same determines that an average number of generated execution rights of all servers per unit time is not in excess of the maximum number even if further registration is made when registration of a cycle of a further server is declared in addition to already registered cycles, while making the cycle not registered if the same determines otherwise.
According to the seventy-fifth aspect, as hereinabove described, the registration instruction part instructs the registration part to register the declared cycles only when the same determines that the average number of the execution rights of all servers per unit time is not in excess of the maximum number of the service requests, execution of which is instructed by the execution instruction part to all servers per unit time, even if the declared cycle is further registered in addition to the already registered cycles. Thus, it is possible to prevent the average number of the generated execution rights of all servers per unit time when the declared cycle of the server is registered from exceeding the maximum number of the service requests, execution of which is instructed by the execution instruction part to all servers per unit time.
The seventy-sixth aspect is characterized in that, in the seventy-fourth aspect,
the registration instruction part recognizes a maximum number of service requests, execution of which is instructed by the execution instruction part to each server per unit time, for instructing the registration part to register the cycles if the same determines that an average number of generated execution rights of each server per unit time is not in excess of the maximum number even if further registration is made when registration of a cycle of a further server is declared in addition to already registered cycles, while making the cycle not registered if the same determines otherwise.
According to the seventy-sixth aspect, as hereinabove described, the registration instruction part instructs the registration part to register the declared cycles only when the same determines that the average number of the execution rights of each server per unit time is not in excess of the maximum number of the service requests, execution of which is instructed to the server, even if the declared cycle of the server is further registered in addition to the already registered cycles. Thus, it is possible to prevent the average number of the generated execution rights of each server per unit time when the declared cycle of the server is registered from exceeding the maximum number of the service requests, execution of which is instructed by the execution instruction part to each server per unit time.
The seventy-seventh aspect is characterized in that, in the seventy-sixth aspect,
the maximum number of the service requests, execution of which is instructed by the execution instruction part to each server per unit time, is a maximum number of the service requests executable by each server per unit time.
Thus, it is possible to prevent the average number of the generated execution rights of each server per unit time when the declared cycle of the server is registered from exceeding the maximum number of the service requests, which can be executed by this server per unit time.
The seventy-eighth aspect is characterized in that, in the seventy-fourth aspect,
the registration instruction part recognizes a maximum number of service requests, execution of which is instructed by the execution instruction part to all servers per unit time, and a maximum number of the service requests, execution of which is instructed by the execution instruction part to each server per unit time, and instructs the registration part to update a cycle Titv for generating an execution right for a certain server already registered to a new Titv calculated by an expression Titv=1/(1/Titv+1/Treq) when a declaration for updating the cycle Titv to that for generating an execution right with further addition of a cycle Treq in case of determining that an average number of generated execution rights of all servers per unit time is not in excess of a maximum number of the service requests, execution of which is instructed by the execution instruction part to all servers per unit time and in case of determining that an average number of generated execution right of the server per unit time is not in excess of a maximum number of the service requests, execution of which is instructed by the execution instruction part to the server per unit time, while not updating the Titv in case of determining otherwise.
According to the seventy-eighth aspect, as hereinabove described, the registration part is instructed to update the cycle Titv for the certain server to the new Titv only in case of determining that the average number of the generated execution rights of all servers per unit time is not in excess of the maximum number of the service requests, execution of which is instructed by the execution instruction part to all servers per unit time and in case of determining that the average number of the generated execution rights of the server per unit time is not in excess of the maximum number of the service requests, execution of which is instructed by the execution instruction part to the server per unit time, when the declaration for updating the cycle Titv to that for generating the execution right with further addition of the cycle Treq is received. Thus, it is possible to make the average number of the generated execution rights of all servers per unit time not exceed the maximum number of the service requests, execution of which is instructed by the execution instruction part to all servers, when the Titv of the server is updated, while it is possible to make the average number of the generated execution rights of the server per unit time not exceed the maximum number of the service requests, execution of which is instructed by the execution instruction part to this server per unit time.
The seventy-ninth aspect is characterized in that, in the seventy-fourth aspect,
the registration instruction part instructs the registration part to update an already registered cycle Titv for generating an execution right of a certain server to a new Titv which is calculated by an expression Titv=1/(1/Titvxe2x88x921/Treq) when a declaration is made to update the Titv to that for generating an execution right while excluding a cycle Treq.
Thus, it is possible to update the already registered cycle to the new one when the declaration is made to update the already registered cycle for generating the execution right to that for generating the same while excluding the cycle Treq.
The eightieth aspect is a server unit connected with a plurality of terminals through wire or radio transmission paths for retrieving and reading corresponding data from those stored therein when a data read request is transmitted from any of the terminals and transmitting the read data to the terminal issuing the read request, which comprises:
a data storage part storing various data and being accessible at random in response to read requests from the terminals;
an input/output part for controlling input/output of the data between the data storage part and each terminal;
an exchange part for exchanging the data between the input/output part and the data storage part; and
a resource management part for managing resources which are necessary in case of reading data required by the terminals from the data storage part and outputting the same to the terminals, and
the resource management separates the resources of the overall server unit to resources (preferential resources) employed for outputting data (preferential data) for which continuity must be guaranteed to the terminals and resources (non-preferential resources) employed for outputting data (non-preferential data) for which no continuity may be guaranteed to the terminals to manage the same.
According to the eightieth aspect, as hereinabove described, the resources of the overall system are separated into the preferential resources and the non-preferential resources and managed, whereby resources used for reading the non-preferential data can be ensured independently of the preferential resources. Consequently, no influence is inserted on output of the preferential data even if the read quantity of the non-preferential data is increased.
The eighty-first aspect is characterized in that, in the eightieth aspect,
each terminal is divided into a plurality of groups,
the input/output part includes a plurality of I/O units provided every group of the terminal,
each I/O unit includes:
a preferential input/output control part executing input/output control with respect to a command requiring reading of the preferential data transmitted from the terminal of the corresponding group; and
a non-preferential input/output control part executing input/output control with respect to a command requiring reading of the non-preferential data transmitted from the terminal of the corresponding group,
the data storage part includes:
a plurality of storage units; and
a plurality of MSFSs connected with each storage unit for controlling reading of data from the storage unit, and
the non-preferential input/output control part includes:
a command queue for temporarily storing commands requiring reading of the non-preferential data transmitted from the terminals of the corresponding group;
a command queue control part for fetching the commands from the command queue;
a command transmission part for transmitting the commands fetched by the command queue control part to corresponding destination the MSFSs;
a data buffer part for temporarily storing the non-preferential data read from the storage units by the MSFSs; and
a data transmission part for transmitting the non-preferential data stored in the data buffer part to the terminals.
The eighty-second aspect is characterized in that, in the eighty-first aspect,
the command queue is provided in correspondence to each of a plurality of terminals belonging to the corresponding group for storing the commands from the corresponding terminal in-order of arrival,
the command queue control part executes command fetch processing of selecting a single command queue storing the commands from a plurality of command queues while fetching a command stored in its head and that transmitted to the same MSFS and outputting the same to the command transmission part,
the command transmission part:
transmits the commands received from the command queue control part to the MSFSs for executing the same; and
transmits a receiving completion notice to the command queue control part when the same confirms that the data buffer part receives all read data for the transmitted commands from the MSFSs; and
the command queue control part repeatedly executes the command fetch processing every time the same receives the receiving completion notice from the command transmission part.
According to the eighty-second aspect, as hereinabove described, it comes to that the command queue control part does not output the next command to the command transmission part after the commands are outputted to the command transmission part and before the data buffer part receives all data corresponding to the outputted command. Thus, the I/O unit does not simultaneously communicate with a plurality of MSFSs in relation to receiving of the non-preferential data, and it is not necessary to take collision of cells of the non-preferential data into consideration. On the other hand, the MSFSs can transmit data at a high speed by using all communication bands of the non-preferential resources provided in the I/O unit.
The eighty-third aspect is characterized in that, in the eighty-second aspect,
the command queue control part limits a number of the commands which are fetched from a single command queue to not more than a predetermined constant number in a single command fetch processing.
When a number of commands are substantially simultaneously transmitted to a single MSFS, congestion is caused in the MSFS receiving the commands, and hence the aforementioned eighty-second aspect is adapted to limit the number of the commands fetched from a single command queue and transmitted to the command transmission part to not more than the predetermined constant number.
The eighty-fourth aspect is characterized in that, in the eighty-second aspect,
the non-preferential input/output control part further includes a buffer management part for managing a used state of the data buffer part, and
the command queue control part decides the command queue selected for the command fetch processing on the basis of the used state of the data buffer part which is managed by the buffer management part.
The eighty-fifth aspect is characterized in that, in the eighty-fourth aspect,
the buffer management part is provided with a plurality of used quantity counters for counting the number of untransmitted data stored in the data buffer part of every terminal, and
the command queue control part refers to the used quantity counters of the buffer management part before executing the command fetch processing for selecting a command queue corresponding to a terminal having a minimum untransmitted data number as a target of the command fetch processing.
According to the eighty-fifth aspect, as hereinabove described, the command queue corresponding to the terminal having the minimum data quantity stored in the data buffer part is selected from the command queues storing the commands on the basis of the used situation of the data buffer part managed by the buffer management part so that transmission processing for the commands stored in the selected command queue is preferentially executed, whereby such a phenomenon that a single terminal occupies and uses non-preferential resources shared by a plurality terminals is reduced and the best use of the communicatability provided in the server unit for the respective terminals can be made.
The eighty-sixth aspect is characterized in that, in the eighty-second aspect,
the command transmission part transmits a command which is received from the command queue control part to the MSFS after reserving an area for storing the non-preferential data read by the MSFS in the data buffer part, and stops transmission of the commands to the MSFS until the area for storing the non-preferential data can be reserved in the data buffer part if the area cannot be reserved.
According to the eighty-sixth aspect, as hereinabove described, the command transmission part reserves the area for storing the data in the data buffer part and thereafter transmits the command requiring reading of the non-preferential data to the MSFS. Namely, the command transmission part transmits no command requiring reading of the non-preferential data to the MSFS until the storage area can be reserved, if the storage region is unreservable. Thus, it is possible to prevent the data from being discarded due to no storage area in the data buffer part in receiving of data from the MSFS.
The eighty-seventh aspect is characterized in that, in the eighty-first aspect,
the command queue control part decides cycles for outputting the commands to the command transmission part on the basis of a smaller one of a communication band serving as a non-preferential resource for each I/O unit for outputting data to each terminal and a communication band serving as a non-preferential resource for each I/O unit for receiving the non-preferential data read from the data storage part.
According to the eighty-seventh aspect, as hereinabove described, the command queue control part decides the cycles for outputting the commands to the command transmission part on the basis of the smaller one of the communication band serving as a non-preferential resource for each I/O unit for outputting data to each terminal and the communication band serving as a non-preferential resource for each I/O unit for receiving the non-preferential data read from the data storage part. Thus, an average band used by the data transmitted from the MSFS is equal to or less than the communication band for the exchange part for communicating with the MSFS, whereby an effect of suppressing congestion of the exchange part resulting from data transmission of the MSFS can be expected. Further, an average band used by the data transmitted from the MSFS is also equal to or less than the communication band for serving as a non-preferential resource for each I/O unit for outputting the data to each terminal, whereby increase of the quantity of the data stored in the data buffer part in the I/O unit can be suppressed.
The eighty-eighth aspect is characterized in that, in the eighty-first aspect,
the command transmission part includes:
a plurality of transmission queues provided in correspondence to the respective MSFSs for storing the commands received from the command queue control part for the respective MSFSs; and
a plurality of processing number counters provided in correspondence to respective ones of the transmission queues, which are incremented every transmission of the commands from the corresponding transmission queues to the MSFSs and decremented every arrival of data read from the corresponding MSFSs at the data buffer part thereby counting the number of the non-preferential data not yet arriving at the data buffer part, and
the command transmission part limits the number of the commands which are transmitted from the respective transmission queues to the MSFSs so that the number of unarriving non-preferential data counted by the processing number counters are not in excess of a prescribed threshold.
According to the eighty-eighth aspect, as hereinabove described, the command transmission part transmits commands in a noted transmission queue to the MSFS only when the count value of the processing counter corresponding to the noted transmission queue is less than the predetermined threshold value, whereby it is possible to avoid such a phenomenon that read processing is concentrated to a single MSFS and the commands reside in this MSFS.
The eighty-ninth aspect is characterized in that, in the eightieth aspect,
the resource management part manages a communication band of the exchange part, a band for the data storage part for reading data, and a communication band for the input/output part for outputting data to the respective terminals as the resources.
The ninetieth aspect is characterized in that, in the eightieth aspect,
the exchange part is formed by an ATM switch, and
a communication band serving as a non-preferential resource of the ATM switch is ensured in an ABR mode.
According to the ninetieth aspect, as hereinabove described, the communication band serving as a non-preferential resource of the ATM switch is ensured in the ABR mode so that the MSFS reading data transmits the data through the communication band ensured in the ABR mode, whereby the transmission rate from the MSFS is immediately reduced and congestion is eliminated even if congestion is caused in the ATM switch. Therefore, the I/O unit can regularly correctly receive the data.
The ninety-first aspect is characterized in that, in the eightieth aspect,
the resource management part previously fixedly allocates parts of the resources of the overall server unit as the preferential resources while allocating the remaining parts as the non-preferential resources.
The ninety-second aspect is characterized in that, in the eightieth aspect,
the resource management part changes a quantity which is allocated as the preferential resources among the resources of the overall server unit in response to read requests for the preferential data from the terminals.
According to the ninety-second aspect, as hereinabove described, the quantity which is allocated as the preferential resources among the resources of the overall server unit is changed in response to the read requests for the preferential data from the terminals, whereby allocation of the resources can be flexibly changed in response to increase/decrease of the read requests for the preferential data, and the best use of the finite resources can be efficiently made.
The ninety-third aspect is characterized in that, in the ninety-second aspect,
the resource management part allocates all those not allocated as the preferential resources among the resources of the overall server unit as the non-preferential resources while allocating preferential resources from those allocated as the non-preferential resources in such a range that the quantity of the non-preferential resources is not below a prescribed resource quantity when it is necessary to increase the preferential resources.
According to the ninety-third aspect, as hereinabove described, all resources not allocated as the preferential resources are managed as the non-preferential resources while allocating preferential resources from the non-preferential resources in such a range that the quantity of the non-preferential resources is not below the prescribed resource quantity (minimum band width) when it is necessary to newly increase the preferential resources, whereby input/output of the preferential data is not influenced even if reading of the non-preferential data is increased and all unused resources are used as non-preferential resources, whereby reading of the non-preferential data is efficiently executed.
The ninety-fourth aspect is a file system for issuing a data acquisition request to a data storage unit in response to a data transmission request from a user and transmitting data acquired from the data storage unit in accordance with the data acquisition request to the user, which comprises:
a data acquisition part for acquiring data from the data storage unit successively from a position specified by the data transmission request continuously at a specified speed;
a buffer for storing the data acquired by the data acquisition part from the data storage unit;
a buffer management part for performing operation of the data stored in the buffer and management of a data quantity;
a data transmission part for continuously reading the data stored in the buffer in order specified by the data transmission request continuously at a specified transmission speed and transmitting the same to the user; and
a pause control part for receiving a pause request and a pause release request from the user for controlling the data transmission part, the data acquisition part and the buffer management part, and
the pause control part is adapted:
to control the data transmission part to immediately stop data transmission while controlling the data acquisition part to immediately stop data acquisition in case of receiving the pause request from the user; and
to control the data transmission part to resume data transmission successively from a head of the data stored in the buffer after pause processing while controlling the data acquisition part to resume data acquisition successively from data next to the last data stored in the buffer after the pause processing in case of receiving the pause release request from the user.
According to the ninety-fourth aspect, as hereinabove described, the data stored in the buffer after the pause processing are transmitted to the user at first when the pause release request is received from the user, whereby the time up to resuming of data transmission after the pause release can be shortened as compared with the case of newly performing a data transmission request.
The ninety-fifth aspect is characterized in that, in the ninety-fourth aspect,
the pause control part substitutes a data acquisition resume time trd for making the data acquisition part resume data acquisition, a quantity N of the data stored in the buffer after the pause processing, a data transmission speed V after pause release and a time D required by the data acquisition part for data acquisition in the following expression (a) in case of receiving the pause release request from the user, thereby calculating a data transmission resume time tsd for making the data transmission part resume data transmission:
tsd=trd+Dxe2x88x92N/Vxe2x80x83xe2x80x83(a)
According to the ninety-fifth aspect, as hereinabove described, the time for resuming data transmission in the pause release is calculated through the expression (a), whereby the data stored in the buffer after the pause processing is transmitted to the user at least before the head data acquired by the data acquisition part acquires after the pause release is stored in the buffer. Consequently, the time up to data transmission resuming in the pause release can be shortened as compared with the case of newly making a data transmission request. Also when the data transmission speed around the pause is changed, further, it is possible to prevent the transmission data from being interrupted due to removal of the transmission data from the buffer, whereby continuous transmission of the data can be implemented.
The ninety-sixth aspect is characterized in that, in the ninety-fourth aspect,
the pause control part substitutes a data transmission resume time tsd for making the data transmission part resume data transmission, a quantity N of the data stored in the buffer after the pause processing, a data transmission speed V after pause release and a time D required by the data acquisition part for data acquisition in the following expression (b) in case of receiving the pause release request from the user, thereby calculating a data acquisition resume time trd for making the data acquisition part resume data acquisition:
trd=tsd+N/Vxe2x88x92Dxe2x80x83xe2x80x83(b)
According to the ninety-sixth aspect, as hereinabove described, the time for resuming data transmission in the pause release is calculated through the expression (b), whereby the data stored in the buffer after the pause processing is transmitted to the user at least before the head data acquired by the data acquisition part after the pause release is stored in the buffer. Consequently, the time up to data transmission resuming in the pause release can be shortened as compared with the case of newly making a data transmission request. Also when the data transmission speed around the pause is changed, further, it is possible to prevent the transmission data from being interrupted due to removal of the transmission data from the buffer, whereby continuous transmission of the data can be implemented.
The ninety-seventh aspect is characterized in that, in the ninety-fourth aspect,
the pause control part determines whether or not a quantity of the data stored in the buffer after pause processing is greater than a limit data quantity transmittable at a data transmission speed after pause release in a time which is required by the data acquisition part for data acquisition in case of receiving the pause release request from the user, and
controls the buffer management part to delete data of a part exceeding the limit data quantity if the data quantity is greater than the limit data quantity as a result of the determination, thereby deciding a head position of the data being acquired by the data acquisition part after pause release.
According to the ninety-seventh aspect, as hereinabove described, the data of the part exceeding the limit data quantity is eliminated from the buffer in the pause release, whereby the buffer may not have a buffer capacity beyond the limit data quantity.
These and other objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings.